Conversation
Signed-off-by: Uroš Marolt <uros@marolt.me>
|
Your PR title doesn't contain a Jira issue key. Consider adding it for better traceability. Example:
Projects:
Please add a Jira issue key to your PR title. |
1 similar comment
|
Your PR title doesn't contain a Jira issue key. Consider adding it for better traceability. Example:
Projects:
Please add a Jira issue key to your PR title. |
backend/src/api/public/v1/members/project-affiliations/getProjectAffiliations.ts
Outdated
Show resolved
Hide resolved
Signed-off-by: Uroš Marolt <uros@marolt.me>
backend/src/database/migrations/V1773139177__add-verified-to-member-segment-affiliations.sql
Outdated
Show resolved
Hide resolved
backend/src/api/public/v1/members/project-affiliations/getProjectAffiliations.ts
Outdated
Show resolved
Hide resolved
backend/src/api/public/v1/members/project-affiliations/getProjectAffiliations.ts
Outdated
Show resolved
Hide resolved
backend/src/api/public/v1/members/project-affiliations/getProjectAffiliations.ts
Outdated
Show resolved
Hide resolved
Signed-off-by: Uroš Marolt <uros@marolt.me>
backend/src/api/public/v1/members/project-affiliations/getProjectAffiliations.ts
Outdated
Show resolved
Hide resolved
There was a problem hiding this comment.
Pull request overview
Adds support for project-affiliation retrieval in the public members API, while standardizing verifiedBy across multiple ingestion/enrichment paths and improving query performance via indexes + a materialized-view refresh job.
Changes:
- Add public endpoint
GET /:memberId/project-affiliationsthat returns per-project contribution segments with maintainer roles and affiliations (manual overrides with work-experience fallback). - Extend integration/enrichment identity payloads and public API outputs to include
verifiedBy(normalized tonullwhen absent). - Add DB migration for
memberSegmentAffiliations.verified/verifiedBy, missing indexes for project-affiliation lookups, and a cron job to refreshmv_maintainer_rolesevery 30 minutes with Slack timeout alerts.
Reviewed changes
Copilot reviewed 25 out of 27 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
| services/libs/integrations/src/integrations/twitter/processData.ts | Include verifiedBy on created Twitter identities. |
| services/libs/integrations/src/integrations/stackoverflow/processData.ts | Include verifiedBy on created StackOverflow identities. |
| services/libs/integrations/src/integrations/slack/processData.ts | Include verifiedBy on created Slack identities (username/email). |
| services/libs/integrations/src/integrations/reddit/processData.ts | Include verifiedBy on created Reddit identities. |
| services/libs/integrations/src/integrations/linkedin/processData.ts | Include verifiedBy on created LinkedIn identities. |
| services/libs/integrations/src/integrations/hackernews/processData.ts | Include verifiedBy on created Hacker News identities. |
| services/libs/integrations/src/integrations/groupsio/processData.ts | Include verifiedBy on created Groups.io identities (username/email). |
| services/libs/integrations/src/integrations/gitlab/processData.ts | Include verifiedBy on created GitLab identities (username/email/commit author). |
| services/libs/integrations/src/integrations/github/processData.ts | Include verifiedBy on created GitHub identities (members/orgs/email). |
| services/libs/integrations/src/integrations/discourse/processData.ts | Include verifiedBy on created Discourse identities (username/email). |
| services/libs/integrations/src/integrations/discord/processData.ts | Include verifiedBy on created Discord identities. |
| services/libs/integrations/src/integrations/devto/processData.ts | Include verifiedBy on created Dev.to identities. |
| services/libs/data-access-layer/src/members/projectAffiliations.ts | New DAL queries for project segments, manual segment affiliations, and work-experience affiliations. |
| services/libs/data-access-layer/src/members/index.ts | Export new projectAffiliations DAL module. |
| services/apps/snowflake_connectors/src/integrations/cvent/event-registrations/transformer.ts | Include verifiedBy for Cvent-derived identities. |
| services/apps/members_enrichment_worker/src/workflows/lf-auth0/enrichMemberWithLFAuth0.ts | Include verifiedBy for LF Auth0-enriched identities. |
| services/apps/cron_service/src/main.ts | Add Slack alert on cron job timeout failures. |
| services/apps/cron_service/src/jobs/refreshMvs.job.ts | New cron job to refresh materialized views (currently mv_maintainer_roles). |
| backend/src/utils/mapper.ts | Include verifiedBy in work-experience mapping. |
| backend/src/database/migrations/V1773139177__add-verified-to-member-segment-affiliations.sql | Add verified/verifiedBy columns to memberSegmentAffiliations. |
| backend/src/database/migrations/V1772799041__add-missing-indexes-for-project-affiliations.sql | Add missing indexes for memberId lookups (incl. on mv_maintainer_roles). |
| backend/src/database/migrations/U1773139177__add-verified-to-member-segment-affiliations.sql | Undo migration placeholder. |
| backend/src/database/migrations/U1772799041__add-missing-indexes-for-project-affiliations.sql | Undo migration placeholder. |
| backend/src/api/public/v1/members/project-affiliations/getProjectAffiliations.ts | New public API handler implementing project-affiliation response assembly. |
| backend/src/api/public/v1/members/index.ts | Register new /:memberId/project-affiliations route + scope. |
| backend/src/api/public/v1/members/identities/verifyMemberIdentity.ts | Return verifiedBy in verify-identity response. |
| backend/src/api/public/v1/members/identities/getMemberIdentities.ts | Return verifiedBy in get-identities response. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
backend/src/api/public/v1/members/project-affiliations/getProjectAffiliations.ts
Show resolved
Hide resolved
Signed-off-by: Uroš Marolt <uros@marolt.me>
Signed-off-by: Uroš Marolt <uros@marolt.me>
Signed-off-by: Uroš Marolt <uros@marolt.me>
Signed-off-by: Uroš Marolt <uros@marolt.me>
backend/src/api/public/v1/members/project-affiliations/getProjectAffiliations.ts
Show resolved
Hide resolved
joanagmaia
left a comment
There was a problem hiding this comment.
LGTM, just small comment to remove source
Signed-off-by: Uroš Marolt <uros@marolt.me>
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes and found 1 potential issue.
Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, have a team admin enable autofix in the Cursor dashboard.
Note
Medium Risk
Introduces new API surface and database migrations (new columns/indexes) plus a scheduled materialized-view refresh, which can impact query performance/behavior and operational stability if misconfigured. Broadly touches identity ingestion/verification by adding
verifiedBymetadata across multiple integrations.Overview
Adds a new public members endpoint
GET /:memberId/project-affiliationsthat returns per-project contribution segments enriched with maintainer roles and organization affiliations, preferring manualmemberSegmentAffiliationsoverrides and falling back to work experiences.Extends identity/work-experience responses and ingestion to include
verifiedBy(API returns now include it; DAL bulk insert persists it; integrations/enrichment populate it), and enhances maintainer-role lookup to also returnmaintainerFilevia joins.Applies DB migrations to support the new affiliations/role queries (adds
verified/verifiedBytomemberSegmentAffiliationsand adds missing indexes), and adds a cron job to periodicallyREFRESH MATERIALIZED VIEW CONCURRENTLYformv_maintainer_roleswith Slack alerts on timeouts.Written by Cursor Bugbot for commit 5a01991. This will update automatically on new commits. Configure here.